#!/usr/bin/python
# -*- coding: UTF-8 -*-
import numpy as np 

# Ornstein-Uhlenbeck,是具有均值回归特性的随机过程
# θ意味着变量多快恢复到均值；μ表示均值；σ是过程的波动程度
# Ornstein-Uhlenbeck过程是一种非常常见的方法，可以随机模拟利率，外汇和商品价格。
# 最重要的参数是加速度的μ，想让汽车具有一定的初始速度，而不要陷在局部最小值（汽车一直踩刹车而不踩油门）。可以随意更改参数来看看AI在不同组合下的行为
class OU(object):

    def function(self, x, mu, theta, sigma):
        return theta * (mu - x) + sigma * np.random.randn(1)